/**********************************
*@file: config.go
*@author: wangjunjun
*@brief:配置文件
*@version: v1.0
*@date: 2023/03/14
***********************************/
package config

import (
	"encoding/json"
	"io/ioutil"

	"github.com/sirupsen/logrus"
)

/*配置文件结构体*/
type Cfg struct {
	APIKey   string   `json:"apiKey"`
	Dir      string   `json:"Dir"`
	MQTT     MQTT     `json:"MQTT"`
	DataBase DataBase `json:"DataBase"`
}
type MQTT struct {
	Broker   string `json:"broker"`
	Port     int    `json:"port"`
	Username string `json:"username"`
	Password string `json:"password"`
	Topic    string `json:"topic"`
}
type DataBase struct {
	Username string `json:"username"`
	Password string `json:"password"`
	HostDB   string `json:"hostDB"`
	DBname   string `json:"dbname"`
	Tblname  string `json:"tblname"`
}
type JsonStruct struct{}

func NewJsonStruct() *JsonStruct {
	return &JsonStruct{}
}
func (jst *JsonStruct) Load(filename string, v interface{}) {
	//ReadFile 函数会读取文件的全部内容，并将结果以 []byte类型返回
	data, err := ioutil.ReadFile(filename)
	if err != nil {
		logrus.Info("ReadFile Failed")
		return
	}
	err = json.Unmarshal(data, v)
	if err != nil {
		return
	}
}

// 获取配置文件相关信息
func (jst *JsonStruct) LoadCfg() Cfg {
	JsonParse := NewJsonStruct()
	v := Cfg{}
	JsonParse.Load("./wlrIms/cfg/json.cfg", &v)
	return v
}
